/*     */ package blockbuster.utils;
/*     */ 
/*     */ import java.lang.reflect.Field;
/*     */ import java.lang.reflect.Modifier;
/*     */ import java.util.List;
/*     */ import java.util.Map;
/*     */ import net.minecraft.client.Minecraft;
/*     */ import net.minecraft.client.renderer.texture.ITextureObject;
/*     */ import net.minecraft.client.renderer.texture.TextureManager;
/*     */ import net.minecraft.client.resources.IResourceManager;
/*     */ import net.minecraft.client.resources.IResourcePack;
/*     */ import net.minecraft.client.resources.SimpleReloadableResourceManager;
/*     */ import net.minecraft.util.ResourceLocation;
/*     */ import net.minecraftforge.fml.client.FMLClientHandler;
/*     */ import net.minecraftforge.fml.relauncher.Side;
/*     */ import net.minecraftforge.fml.relauncher.SideOnly;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class ReflectionUtils
/*     */ {
/*     */   public static Field TEXTURE_MAP;
/*     */   private static boolean SHADOW_PASS_CHECK;
/*     */   private static Field SHADOW_PASS;
/*     */   
/*     */   public static Map<ResourceLocation, ITextureObject> getTextures(TextureManager manager) {
/*  44 */     if (TEXTURE_MAP == null)
/*     */     {
/*  46 */       setupTextureMapField(manager);
/*     */     }
/*     */ 
/*     */     
/*     */     try {
/*  51 */       return (Map<ResourceLocation, ITextureObject>)TEXTURE_MAP.get(manager);
/*     */     }
/*  53 */     catch (Exception e) {
/*     */       
/*  55 */       return null;
/*     */     } 
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static void setupTextureMapField(TextureManager manager) {
/*  66 */     for (Field field : manager.getClass().getDeclaredFields()) {
/*     */       
/*  68 */       if (!Modifier.isStatic(field.getModifiers())) {
/*     */ 
/*     */ 
/*     */ 
/*     */         
/*  73 */         field.setAccessible(true);
/*     */ 
/*     */         
/*     */         try {
/*  77 */           Object value = field.get(manager);
/*     */           
/*  79 */           if (value instanceof Map && ((Map)value).keySet().iterator().next() instanceof ResourceLocation) {
/*     */             
/*  81 */             TEXTURE_MAP = field;
/*     */ 
/*     */             
/*     */             break;
/*     */           } 
/*  86 */         } catch (Exception e) {
/*     */           
/*  88 */           e.printStackTrace();
/*     */         } 
/*     */       } 
/*     */     } 
/*     */   }
/*     */ 
/*     */   
/*     */   @SideOnly(Side.CLIENT)
/*     */   public static boolean registerResourcePack(IResourcePack pack) {
/*     */     try {
/*  98 */       Field field = FMLClientHandler.class.getDeclaredField("resourcePackList");
/*  99 */       field.setAccessible(true);
/*     */       
/* 101 */       List<IResourcePack> packs = (List<IResourcePack>)field.get(FMLClientHandler.instance());
/* 102 */       packs.add(pack);
/* 103 */       IResourceManager manager = Minecraft.func_71410_x().func_110442_L();
/*     */       
/* 105 */       if (manager instanceof SimpleReloadableResourceManager)
/*     */       {
/* 107 */         ((SimpleReloadableResourceManager)manager).func_110545_a(pack);
/*     */       }
/*     */       
/* 110 */       return false;
/*     */     }
/* 112 */     catch (Exception e) {
/*     */       
/* 114 */       e.printStackTrace();
/*     */ 
/*     */       
/* 117 */       return false;
/*     */     } 
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static boolean isOptifineShadowPass() {
/* 126 */     if (!SHADOW_PASS_CHECK) {
/*     */ 
/*     */       
/*     */       try {
/* 130 */         Class<?> clazz = Class.forName("net.optifine.shaders.Shaders");
/*     */         
/* 132 */         SHADOW_PASS = clazz.getDeclaredField("isShadowPass");
/*     */       }
/* 134 */       catch (Exception exception) {}
/*     */ 
/*     */       
/* 137 */       SHADOW_PASS_CHECK = true;
/*     */     } 
/*     */     
/* 140 */     if (SHADOW_PASS != null) {
/*     */       
/*     */       try {
/*     */         
/* 144 */         return ((Boolean)SHADOW_PASS.get(null)).booleanValue();
/*     */       }
/* 146 */       catch (Exception exception) {}
/*     */     }
/*     */ 
/*     */     
/* 150 */     return false;
/*     */   }
/*     */ }


/* Location:              D:\fanbian\[D][龙之核心]DragonCore-2.6.0.3.jar!\blockbuste\\utils\ReflectionUtils.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */